struct X {
    int i;
    Y[] y;
};

union Y {
    double;
    X;
    Z;
};

struct Z {
    X x;
    Y y;
};

protocol mutualRecStructUnion {
child:
    async Test(X x, Y y, Z z);
    async __delete__();
};
